import { createStore, createLogger } from 'vuex'
import createPersistedstate from 'vuex-persistedstate'
import cart from './modules/cart'
import user from './modules/user'
import category from './modules/category'

export default createStore({
  // 模块
  modules: {
    category,
    cart,
    user
  },
  // 全局的 getters ，在模块内部可通过 rootGetters 访问
  getters: {
    token (state) {
      // 全局的 state ，在模块模块内用 rootState 访问
      return state.user.profile.token
    },
    isLogin (state) {
      return Boolean(state.user.profile.token)
    }
  },
  // 插件配置
  plugins: [
    // 自动打印插件
    createLogger(),
    // 持久化存储插件
    createPersistedstate({
      // key 名称
      key: 'erabbit-client-pc-store-66',
      // 需要持久化的模块
      paths: ['user', 'cart']
    })
  ]
})
